home *** CD-ROM | disk | FTP | other *** search
- /* fdopen.c - associate stream with file descriptor, return file pointer.
- (C) Copyright 1985 Gregory R. Mansfield - All Rights Reserved.
- G. R. Mansfield. 85/05/28.
- Ver 1.0-5528.
- */
-
- #include <stdio.h>
-
- FILE *fdopen(fd, mode)
- register char *mode;
- register int fd;
- {
- register FILE *fp;
-
- if (*mode != 'r' && *mode != 'w' && *mode != 'a')
- return(NULL);
- for (fp = _iob; fp < _iob + _NFILE; fp++)
- if ((fp->_flag & (_READ | _WRITE)) == 0)
- break; /* found free slot */
- if (fp >= _iob + _NFILE) /* no free slots found */
- return(NULL);
-
- fp->_fd = fd;
- fp->_cnt = 0;
- fp->_base = NULL;
- fp->_flag &= ~(_READ | _WRITE | _UNBUF);
- fp->_flag |= (*mode == 'r') ? _READ : _WRITE;
- return(fp);
- }
-